package com.ocean.web.controller.index;

import java.util.List;

import com.ocean.inxex.domain.SysFtpConfig;
import com.ocean.inxex.service.ISysFtpConfigService;
import com.ocean.inxex.vo.SysFtpConfigVo;
import com.ocean.inxex.vo.tsTjVo;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ocean.common.annotation.Log;
import com.ocean.common.enums.BusinessType;
import com.ocean.common.core.controller.BaseController;
import com.ocean.common.core.domain.AjaxResult;
import com.ocean.common.utils.poi.ExcelUtil;
import com.ocean.common.core.page.TableDataInfo;

/**
 * FTP信息（FTP维护系统）Controller
 * 
 * @author ocean
 * @date 2024-06-13
 */
@Controller
@RequestMapping("/system/ftpconfig")
public class SysFtpConfigController extends BaseController
{
    private String prefix = "system/ftpconfig";

    @Autowired
    private ISysFtpConfigService sysFtpConfigService;

    @RequiresPermissions("system:config:view")
    @GetMapping()
    public String config()
    {
        return prefix + "/config";
    }

    /**
     * 查询FTP信息（FTP维护系统）列表
     */
    @RequiresPermissions("system:config:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(SysFtpConfig sysFtpConfig)
    {
        startPage();
        List<SysFtpConfig> list = sysFtpConfigService.selectSysFtpConfigList(sysFtpConfig);
        return getDataTable(list);
    }

    /**
     * 导出FTP信息（FTP维护系统）列表
     */
    @RequiresPermissions("system:config:export")
    @Log(title = "FTP信息（FTP维护系统）", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(SysFtpConfig sysFtpConfig)
    {
        List<SysFtpConfig> list = sysFtpConfigService.selectSysFtpConfigList(sysFtpConfig);
        ExcelUtil<SysFtpConfig> util = new ExcelUtil<SysFtpConfig>(SysFtpConfig.class);
        return util.exportExcel(list, "FTP信息（FTP维护系统）数据");
    }
    @RequiresPermissions("system:config:export")
    @Log(title = "导出详细信息", businessType = BusinessType.EXPORT)
    @PostMapping("/exportExcelTwo")
    @ResponseBody
    public AjaxResult exporttwo(SysFtpConfig sysFtpConfig)
    {
        String beginTime = sysFtpConfig.getParams().get("beginTime").toString();
        String endTime = sysFtpConfig.getParams().get("endTime").toString();
        String name = sysFtpConfig.getConfigName().toString();
        List<SysFtpConfigVo> list = sysFtpConfigService.exporttwotj(beginTime,endTime,name);
        ExcelUtil<SysFtpConfigVo> util = new ExcelUtil<SysFtpConfigVo>(SysFtpConfigVo.class);
        return util.exportExcel(list, "导出详细数据");
    }


    /**
     * 新增FTP信息（FTP维护系统）
     */
    @GetMapping("/add")
    public String add()
    {
        return prefix + "/add";
    }

    /**
     * 新增保存FTP信息（FTP维护系统）
     */
    @RequiresPermissions("system:config:add")
    @Log(title = "FTP信息（FTP维护系统）", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(SysFtpConfig sysFtpConfig)
    {
        return toAjax(sysFtpConfigService.insertSysFtpConfig(sysFtpConfig));
    }

    /**
     * 修改FTP信息（FTP维护系统）
     */
    @RequiresPermissions("system:config:edit")
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Long id, ModelMap mmap)
    {
        SysFtpConfig sysFtpConfig = sysFtpConfigService.selectSysFtpConfigById(id);
        mmap.put("sysFtpConfig", sysFtpConfig);
        return prefix + "/edit";
    }

    /**
     * 修改保存FTP信息（FTP维护系统）
     */
    @RequiresPermissions("system:config:edit")
    @Log(title = "FTP信息（FTP维护系统）", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(SysFtpConfig sysFtpConfig)
    {
        return toAjax(sysFtpConfigService.updateSysFtpConfig(sysFtpConfig));
    }

    /**
     * 删除FTP信息（FTP维护系统）
     */
    @RequiresPermissions("system:config:remove")
    @Log(title = "FTP信息（FTP维护系统）", businessType = BusinessType.DELETE)
    @PostMapping( "/remove")
    @ResponseBody
    public AjaxResult remove(String ids)
    {
        return toAjax(sysFtpConfigService.deleteSysFtpConfigByIds(ids));
    }

    @Log(title = "FTP信息推送统计")
    @PostMapping( "/tstj")
    @ResponseBody
    public TableDataInfo tstj(SysFtpConfig sysFtpConfig){
        String beginTime = sysFtpConfig.getParams().get("beginTime").toString();
        String endTime = sysFtpConfig.getParams().get("endTime").toString();
        String name = sysFtpConfig.getConfigName().toString();
        startPage();
        List<tsTjVo> tstj = sysFtpConfigService.tstj(name,beginTime,endTime);
        return getDataTable(tstj);
    }
}
